package dao

import (
	"time"
)

// 这是 SmsHomeAdvertise 的全局公开dao对象，被service层调用!
var SmsHomeAdvertiseDao = smsHomeAdvertiseDao{}

// 这是 sms_home_advertise表 的实体类
type SmsHomeAdvertise struct {
	Id         int64     `json:"id"` // 编号
	Name       string    `json:"name"`
	Types      int32     `json:"types"` // 轮播位置：0-&gt;PC首页轮播；1-&gt;app首页轮播
	Pic        string    `json:"pic"`
	StartTime  time.Time `json:"start_time"`
	EndTime    time.Time `json:"end_time"`
	Status     int32     `json:"status"`      // 上下线状态：0-&gt;下线；1-&gt;上线
	ClickCount int32     `json:"click_count"` // 点击数
	OrderCount int32     `json:"order_count"` // 下单数
	Url        string    `json:"url"`         // 链接地址
	Note       string    `json:"note"`        // 备注
	Sort       int32     `json:"sort"`        // 排序
}

// 注意:这是 SmsHomeAdvertise 的私有dao对象，只能在dao层内使用!
type smsHomeAdvertiseDao struct {
	InsertTemplate func(arg SmsHomeAdvertise) (int64, error)
	UpdateTemplate func(arg SmsHomeAdvertise) (int64, error)
	DeleteTemplate func(ids []int64) (int64, error)            `args:"ids"`
	SelectTemplate func(id int64) (SmsHomeAdvertise, error)    `args:"id"`
	UpdateStatus   func(id int64, status int32) (int64, error) `args:"id,status"`
	List           func(arg SmsHomeAdvertiseList) ([]SmsHomeAdvertise, error)
	// 这个方法是给 web端用的
	GetList func(types, status int32) ([]SmsHomeAdvertise, error) `args:"types,status"`
}

type SmsHomeAdvertiseList struct {
	Name      string    `json:"name" form:"name"`
	Types     int32     `json:"types" form:"types"` // 轮播位置：0-&gt;PC首页轮播；1-&gt;app首页轮播
	StartTime time.Time `json:"start_time" form:"start_time"`
	EndTime   time.Time `json:"end_time" form:"end_time"`
	PageNum   int       `json:"page_num" form:"page_num"`
	PageSize  int       `json:"page_size" form:"page_size"`
}

type SmsHomeAdvertiseStr struct {
	Name     string `json:"name" form:"name"`
	Types    int32  `json:"types" form:"types"` // 轮播位置：0-&gt;PC首页轮播；1-&gt;app首页轮播
	EndTime  string `json:"end_time" form:"end_time"`
	PageNum  int    `json:"page_num" form:"page_num"`
	PageSize int    `json:"page_size" form:"page_size"`
}

type SmsHomeAdvertiseReq struct {
	Id         int64  `json:"id" form:"id"` // 编号
	Name       string `json:"name" form:"name"`
	Types      int32  `json:"types" form:"types"` // 轮播位置：0-&gt;PC首页轮播；1-&gt;app首页轮播
	Pic        string `json:"pic" form:"pic"`
	StartTime  string `json:"start_time" form:"start_time"`   //这个字符串的格式为: 2006-01-02 15:04:05
	EndTime    string `json:"end_time" form:"end_time"`       //这个字符串的格式为: 2006-01-02 15:04:05
	Status     int32  `json:"status" form:"status"`           // 上下线状态：0-&gt;下线；1-&gt;上线
	ClickCount int32  `json:"click_count" form:"click_count"` // 点击数
	OrderCount int32  `json:"order_count" form:"order_count"` // 下单数
	Url        string `json:"url" form:"url"`                 // 链接地址
	Note       string `json:"note" form:"note"`               // 备注
	Sort       int32  `json:"sort" form:"sort"`               // 排序
}

type SmsHomeAdvertiseRes struct {
	Id         int64  `json:"id"` // 编号
	Name       string `json:"name"`
	Types      int32  `json:"types"` // 轮播位置：0-&gt;PC首页轮播；1-&gt;app首页轮播
	Pic        string `json:"pic"`
	StartTime  string `json:"start_time"`
	EndTime    string `json:"end_time"`
	Status     int32  `json:"status"`      // 上下线状态：0-&gt;下线；1-&gt;上线
	ClickCount int32  `json:"click_count"` // 点击数
	OrderCount int32  `json:"order_count"` // 下单数
	Url        string `json:"url"`         // 链接地址
	Note       string `json:"note"`        // 备注
	Sort       int32  `json:"sort"`        // 排序
}
